package antlr.calculateTest;

import antlr.calculateGen.ExprBaseVisitor;
import antlr.calculateGen.ExprParser;

import java.util.HashMap;
import java.util.Map;

public class EvalVisitor extends ExprBaseVisitor<Integer> {

    Map<String,Integer> memory = new HashMap<String, Integer>();

    @Override
    public Integer visitPrintExpr(ExprParser.PrintExprContext ctx) {
        return super.visitPrintExpr(ctx);
    }

    @Override
    public Integer visitAssign(ExprParser.AssignContext ctx) {
        String id = ctx.ID().getText();
        int value = visit(ctx.expr());
        memory.put(id,value);
        return value;
    }

    @Override
    public Integer visitMulDiv(ExprParser.MulDivContext ctx) {
        return super.visitMulDiv(ctx);
    }

    @Override
    public Integer visitAddSub(ExprParser.AddSubContext ctx) {
        return super.visitAddSub(ctx);
    }

    @Override
    public Integer visitId(ExprParser.IdContext ctx) {
        return super.visitId(ctx);
    }

    @Override
    public Integer visitInt(ExprParser.IntContext ctx) {
        return super.visitInt(ctx);
    }

    //ID '=' expr NEWLINE

}
